package com.company.collectionsFramework;

import org.omg.CORBA.INTERNAL;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class TestCollection {
    public static void main(String[] args) {
        /**Collection是Set List Queue 和Deque的接口
         * Queue:是先进先出队列
         * Deque：双向链表
         * 注： Collection和Map之间的关系，Collection是放一个一个对象，Map是放键值对。
         * 注： Deque继承Queue，间接的继承了Collection
         * **/

        List<Integer> numbers = new ArrayList<>();
        for (int i=0; i<10;i++){
            numbers.add(i);
        }
        System.out.println("集合中的数据:");
        System.out.println(numbers);

        Collections.reverse(numbers);
        System.out.println("翻转后的集合中的数据");
        System.out.println(numbers);

        /**混淆，混淆List中数据的顺序**/
        Collections.shuffle(numbers);
        System.out.println("混淆后的数据");
        System.out.println(numbers);

        /**排序 sort对List中的数据进行排序**/
        Collections.sort(numbers);
        System.out.println("排序后的数据");
        System.out.println(numbers);

        /**交换 swap交换两个数据的位置**/
        Collections.swap(numbers, 0, 1);
        System.out.println("交换后的数据");
        System.out.println(numbers);

        /**滚动 totate 把List中的数据，向右滚动指定单位长度**/

        Collections.rotate(numbers, 3);
        System.out.println("滚动后的数据");
        System.out.println(numbers);
        /**线程安全化
         * synchronizedList把非线程安全的List转换线程安全的List。
         * **/
        List<Integer> lists = new ArrayList<>();
        System.out.println("把非线程安全的List转换为线程安全的List");
        List<Integer> synchronizedNumbers = (List<Integer>) Collections.synchronizedList(lists);


    }
}
